//
//  ZQTopic.m
//  BuDeJie
//
//  Created by 仲琦 on 16/4/12.
//  Copyright © 2016年 仲琦. All rights reserved.
//

#import "ZQTopic.h"

@implementation ZQTopic
/*
 以后在使用除法时，可能会出现NaN错误
 NaN的全称是not a number, 如果0作为除数时就会出现NaN错误(比如10 / 0)
 */

- (CGFloat )cellHeight
{
    if (_cellHeight)  return _cellHeight;
    
    //加上 顶部的高度
    _cellHeight += 55;
    
    //计算文字高度
    //取出文字的宽度 高度
    CGSize textSize = CGSizeMake(ZQScreenW - 2 * ZQMargin, MAXFLOAT);
    /**
     *  第一个参数 : 文字的宽高
     *  第二个参数 : NSStringDrawingUsesLineFragmentOrigin 固定
     *  第三个参数 : 字体的大小
     */
    _cellHeight +=  [self.text boundingRectWithSize:textSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:17]} context:nil].size.height + ZQMargin;
    
    
    //判断数据类型不为Word 其他类型加100高度
    if (self.type != ZQTopicTypeWord) {
        
        //计算图片高度
        CGFloat minW = textSize.width;
        CGFloat minH = minW * self.height /self.width;
        
        //判断图片高度超过屏幕高度,就是超长图.
        if (minH >= ZQScreenH) {
            minH = ZQScreenH * 0.3;
            self.bigPicture = YES;
        }
        
        CGFloat minX = ZQMargin ;
        CGFloat minY = _cellHeight;
        self.minFrame = CGRectMake(minX, minY, minW, minH);
        
        _cellHeight += minH + ZQMargin;

        
    }
    
    //判断最热评论属性是否有值
    if (self.top_cmt.count) {
        _cellHeight += 21;  //加顶部评论高度
        
        //取出最热评论的属性
        NSString *username = self.top_cmt.firstObject[@"user"][@"username"];
        NSString *content = self.top_cmt.firstObject[@"content"];
        
        //判断内容是否为空, 为空即为语音消息
        if (content.length == 0) {
            content = @"语音消息";
        }
        //拼接
        NSString *textContent = [NSString stringWithFormat:@" %@ : %@", username, content];
        
        //计算
        _cellHeight += [textContent boundingRectWithSize:textSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15]} context:nil].size.height + ZQMargin;

    }
    //加上底部的高度
    _cellHeight += 35 + ZQMargin;
    
    
    
    return _cellHeight;
    
}

@end
